-- @Author: 作者QQ381990860
-- @Date:   2022-01-12 22:16:36
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-08-26 16:18:52


local 代代内挂系统 = class()
local xys = 生成XY
function 代代内挂系统:初始化()
	self.程序=0
	self.时间判断=os.time()
	--1-获取当前地图
    self.执行间隔=10
    self.x=0
    self.y=0
    self.怪物编号=0
    self.战斗状态=false
    self.版本="普通版"
end
function 代代内挂系统:执行()
	--引擎.置标题()

     if self.程序==1 and self.时间判断<=os.time() then  --获取内挂权限
         发送数据(148,{"1"})
         --print("执行了一次")
        -- 引擎.置标题("获取内挂权限")
       --  引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
     --  引擎.置标题("已经开启内挂,你的内挂版本为:"..self.版本..",F11可停止内挂!")
         self.程序=0
     elseif self.程序==2 and self.时间判断<=os.time() then  --地图跳转
         发送数据(149,{"1"})
       --  引擎.置标题("获取地图信息")
        -- 引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
         self.程序=0
     elseif self.程序==3 and self.时间判断<=os.time() then ---获取地图怪物
         发送数据(150,{"1"})
      --   引擎.置标题("获取怪物信息")
        -- 引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
         self.程序=0
     elseif self.程序==4 and self.时间判断<=os.time() then
       -- 引擎.置标题("触发怪物")
        --引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
        self:触发怪物对话()
     elseif self.程序==5 and self.时间判断<=os.time() then
       -- 引擎.置标题("触发战斗")
        --引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
        self:触发战斗()
     elseif self.程序==6 and self.时间判断<=os.time() then
       -- 引擎.置标题("自动战斗")
        --引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
         self:获取战斗状态()
     elseif self.程序==7  then
       -- 引擎.置标题("等待战斗结束")
       -- 引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
          if self.时间判断<=os.time() then
          self:获取战斗状态()
          end
      elseif self.程序==8 then
          if self.时间判断<=os.time() then
            发送数据(149,{"1"})
            --引擎.置标题("获取地图信息")
          --  引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
            self.程序=0
          -- else
          --   引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
          end
      elseif self.程序==9 then
          if self.时间判断<=os.time() then
            发送数据(155,{"1"})
            --引擎.置标题("清理背包")
            --引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
            self.程序=0
          -- else
          --   引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
          --  -- 引擎.置标题("清理背包中")
          end
     end

end

function 代代内挂系统:获取战斗状态()
        发送数据(151,{"1"})
       self:归零()
end
function 代代内挂系统:归零()
    self.时间判断=os.time()+self.执行间隔
       self.程序=0
end
function 代代内挂系统:跳转地图()
    self.时间判断=os.time()+self.执行间隔
    self.程序=8

end
function 代代内挂系统:战斗状态判断(状态)
   self.战斗状态=状态.战斗状态
   self.其他操作=状态.其他操作
   if self.战斗状态==false and self.其他操作 then
    self.时间判断=os.time()+self.执行间隔
    self.程序=9
   elseif self.战斗状态 then
      if 自动战斗~=true then 自动战斗=true end
     self.时间判断=os.time()+self.执行间隔
     self.程序=7
   elseif self.战斗状态==false and self.其他操作==false then
     self.时间判断=os.time()+self.执行间隔
     self.程序=3
   end
end

function 代代内挂系统:触发怪物对话()
  if (math.floor(tp.场景.人物.坐标.x/20) < self.x+10 and math.floor(tp.场景.人物.坐标.x/20) > self.x-10) and (math.floor(tp.场景.人物.坐标.y/20) < self.y+10 and math.floor(tp.场景.人物.坐标.y/20) >self.y-10)  then
    客户端:发送数据(self.怪物编号,2,6)
    self.程序=5
    self.时间判断=os.time()+self.执行间隔
  elseif self.时间判断+60<=os.time() then
         发送数据(150,{"1"})
        -- 引擎.置标题("获取怪物信息")
        -- 引擎.置标题("等待操作剩余时间:"..self.时间判断-os.time())
        self:归零()
  end
end
function 代代内挂系统:触发战斗()
客户端:发送数据(self.怪物编号,4,6,"我来收服你")
self.x=0
self.y=0
self.怪物编号=0
self.程序=6
self.时间判断=os.time()+self.执行间隔
end
function 代代内挂系统:获取权限(数据)
     local 权限=数据.内挂.自动刷怪
     local 内挂版本=数据.内挂.内挂版本
     if 权限 then
        if 内挂版本==1 then
            self.执行间隔=10
            self.版本="普通版"
        elseif 内挂版本==2 then
            self.执行间隔=5
            self.版本="高级版"
        else
           self.执行间隔=10
           self.版本="普通版"
        end
引擎.置标题("已经开启内挂,你的内挂版本为:"..self.版本..",F11可停止内挂!")
        self.时间判断=os.time()+self.执行间隔
        self.程序=1
     end
end
function 代代内挂系统:关闭内挂()

end
function 代代内挂系统:获取当前地图(数据)
    local 地图编号=数据.地图编号.编号
    local 要去地图=数据.要去地图
    if 地图编号~=要去地图 then
        self.时间判断=os.time()+self.执行间隔
        self.程序=2
    else
        self.时间判断=os.time()+self.执行间隔
        self.程序=3
    end
end

function 代代内挂系统:获取怪物列表(数据)

    local 怪物数据=数据

    local 随机怪物=取随机数(1,#怪物数据)
    local 代代=怪物数据[随机怪物]
    local 格子 = {}
    格子.x=代代.x
    格子.y=代代.y
    local a = xys(代代.x,代代.y)
    tp.场景.人物.路径组 = tp.场景.地图.寻路:寻路(a,格子)
    tp.场景.跟随坐标 = {tp.场景.人物.路径组}
    if tp.场景.人物.路径组 ~= nil and tp.场景.人物.路径组[1] ~= nil then
        tp.场景.人物.延时 = 20
        客户端:发送数据(0,1,4,代代.x.."*-*"..代代.y,1)
    else
        tp.场景.人物.路径组 = {}
    end
    self.怪物编号=代代.编号
    self.x=代代.x
    self.y=代代.y
    self.时间判断=os.time()+self.执行间隔
    self.程序=4

end

return 代代内挂系统